# # #创建集合set，set()用来创建集合的函数，type()用来查看数据类型
# # #1.可以使用大括号来进行创建
# # Num1 = {1,2,3,4,5}
# # #2.使用set()函数来进行创建
# # Num2 = set('12345')
# # print(Num1)
# # print(type(Num1))
# # print(Num2)
# # print(type(Num2))
# #
# #
# # #集合的添加与删除
# # #添加元素
# # Num1.add(6)
# # print(Num1)
# # #删除集合中第一个元素
# # Num1.pop()
# # print(Num1)
# # #删除集合中的元素
# # Num1.remove(5)
# # print(Num1)
#
#
# # #创建元组
# # #创建空元组
# # tuple1 = ()
# # print(tuple1)
# # #创建带有元素的元组，可以有元素类型
# # tuple2 = (1, 'a', 3, 'hello', 2.2)
# # print(tuple2)
# # #创建只有一个元素的元组
# # tuple3 = (1,)
# # print(tuple3)
# #
# # #使用typle()函数将其他数据类型转换为元组类型
# # #语法格式:tuple(数据)
# # #将字符串转换成元组
# # tuple1 = tuple('hello,world')
# # print(tuple1)
# # #将列表转换为元组
# # list1 = ['python', 'java', 'c++', 'c']
# # tuple2 = tuple(list1)
# # print(tuple2)
#
#
# #从开始索引开始截取，截至到结束索引之前
# tuple1 = ('h', 'e', 'l', 'l', 'o')
# #使用索引访问元组中的某个元素
# #使用正数索引，从0开始
# print(tuple[2])
# #使用负数索引，倒序从-1开始
# print(tuple[-4])
#
# #使用切片访问元组中的一组元素，前闭后开
# #使用正数切片
# print(tuple[1: 4])
# #指定步长
# print(tuple[1: 4: 2])
# #使用负数切片
# print(tuple[-5: -1])
# # # #修改元组元素
# # # t1 = (12, 34, 56)
# # # t2 = ('abc', 'mn')
# # # #修改元组元素操作是非法的
# # # # t1[0] = 100
# # # # t1[0] = 200
# # # # 链接元组创建一个新的元组，两个数据必须都是元组
# # # t3 = t1 + t2
# # # print(t3)
# # #
# # #
# # # # 删除元组 del
# # # t4 = ('f', 'd', 'y'[1, 2, 3, 4])
# # # print(t4)
# # # del t4
# # #
# # # print(t4)
# # #
# # # # 使用input方式输入联系人姓名、电话、邮箱、地址
# # # n = input('请输入联系人姓名：')
# # # t = input('请输入联系人电话：')
# # # e = input('请输入联系人邮箱地址：')
# # # a = input('请输入联系人地址：')
# # # tuple1 = ('姓名', n, '电话', t, '邮箱', e, '地址', a)
# # # print(tuple1)
# #
# #
# # # #列表 list
# # # # 列表的创建
# # # # 创建空列表
# # # l1 = []
# # # print(l1)
# # # # 创建带有元素的列表
# # # l2 = [1, 2, 3, 'python', 2.2]
# # # print(l2)
# # # print(type(l2))
# # #
# # #
# # # # 2.使用list()函数将其他类型的数据(字符串、元组、range函数)转换为列表：
# # # # 0.创建空列表
# # # ll = list()
# # # print(ll)
# # # # 1.转化字符串
# # # l3 = list('hello')
# # # print(l3)
# # # # 2.转化元组
# # # s1 = tuple('hello')
# # # l4 = list(s1)
# # # print(l4)
# # # # 3.转化range函数
# # # r1 = range(5)
# # # l5 = list(r1)
# # # print(l5)
# #
# #
# # # #访问列表中的元素
# # # #使用索引访问列表中的元素
# # # l1 = ['p', 'y', 't', 'y', 'h', 'q', 'w', '438']
# # # #访问h，使用正向索引
# # # print(l1[4])
# # # #访问t，使用负向索引
# # # print(l1[-6])
# #
# #
# # # #使用切片形式访问列表中的元素
# # # l2 = ['p', 'y', 't', 'h', 'o', 'n']
# # # #使用正数切片，截取索引为2,3,4的元素，默认值为1
# # # print(l2[2:5])
# # # #使用索引3-5的元素，末尾
# # # print(l2[3:])
# # # #使用索引0-2的元素，开头
# # # print(l2[:3])
# # # #取索引15，步长2
# # # print(l2[1::2])
# # # #使用负切片，取后三个元素
# # # print(l2[-3:])
# # # #使用负切片，取-5——-1，步长是2的元素
# # # print(l2[-5:-1:2])
# #
# #
# # # #遍历列表
# # # l3 = ['python', 'java', 'c', 'c++', 'r', 'go', 'javascript']
# # # for i in l3:
# # #     print(i)
# #
# #
# # # #修改列表元素
# # # #修改单个元素
# # # l4 = [10, 56, 34, 2, 56, 44, 7]
# # # #将索引为2的元素值修改为100
# # # l4[2] = 100
# # # print(l4)
# # #
# # # #修改多个元素
# # # l5 = [10, 56, 34, 2, 56, 44, 7]
# # # #修改第1-4个元素的值（不包括第4个元素）
# # # l5[1:4:1] = [45, -56, 98]
# # # print(l5)
# #
# #
# # # #列表中添加元素
# # # #1.append()用于在列表的末尾追加元素
# # # l6 = ['a', 'b', 'c']
# # # l6.append('f')
# # # print(l6)
# # # #列表添加列表
# # # l6.append(['e', 'f'])
# # # print(l6)
# #
# #
# # # #2.extend()在列表的末尾一次添加多个元素
# # # l13 = ['a', 'b', 'c']
# # # l13.extend('d')
# # # print(l13)
# # # #列表添加列表
# # # l13.extend(['e', 'f', 'g', 'h'])
# # # print(l13)
# # # l13.extend('world')
# # # print(l13)
# # #
# # # #3.insert()在列表的特定位置添加想要添加的特定元素
# # # l14 = ['python', 'c', 'java']
# # # #插入元素，在索引为2处插入go元素
# # # l14.insert(2, 'go')
# # # print(l14)
# # #
# # #
# # # #删除元素
# # # #remove删除：remove()方法是移除掉列表里面的特定元素，而且必须保证该元素是存在的，否则会引出valueError错误
# # # l15 = ['a', 'b', 'c', 'd']
# # # l15.remove('a')
# # # print(l15)
# # #
# # #
# # # #pop（）方法用来删除列表中指定索引处的元素
# # # l16 = [10, 56, 34, 2, 56, 44, 7]
# # # #删除索引为3的元素
# # # l16.pop(3)
# # # print(l16)
# # # #删除最后一个元素
# # # l16.pop()
# # # print(l16)
# #
# #
# # # #del可以用来删除列表中单个元素或者一段连续的元素
# # # l17 = ['a', 'b', 'c', 'd', 'e']
# # # #删除索引为1的元素
# # # del l17[1]
# # # print(l17)
# # # l18 = [10, 56, 34, 2, 58, 44, 7]
# # # #删除索引为1-3的元素
# # # del l18[1:4]
# # # print(l18)
# # #
# # # #若将列表中所有的元素全部删除，可以使用列表的clear（）方法
# # # l19 = ['a', 'b', 'c', 'd']
# # # #清空列表
# # # l19.clear()
# # # print(l19)
# #
# #
# # # # 任务
# # # # 创建两个空列表name_list和phone_list，用于存储联系人姓名和电话；
# # # # 向列表中添加联系人信息；
# # # # 输入联系人编号修改信息；
# # # # 输入联系人编号删除信息；
# # # # # 使用clear()清空通讯录。name_list=['张三'， ’李四', '王五', ‘maliu'],phone_list=[123, 236, 258, 598]
# # name_list = []
# # phone_list = []
# # while 1:
# #     print("菜单：1.添加联系人 2.修改联系人 3.删除联系人")
# #     chioce = input("请输入选择：")
# #     #1.添加联系人，包括姓名，手机号
# #     if chioce == "1":
# #         name_list.append(input("请输入联系人姓名："))
# #         phone_list.append(input("请输入联系人手机号："))
# #         print(name_list)
# #         print(phone_list)
# #     #2.修改联系人信息
# #     elif  chioce == "2":
# #         num = int(input("请输入联系人编号："))
# #         if len(name_list) > 0 and num <= len(name_list):
# #             name_list[num - 1] = input("修改联系人姓名")
# #             phone_list[num - 1] = input("修改联系电话")
# #         else:
# #             print("联系人编号输入有误")
# #     #3.删除联系人信息
# #     elif chioce == "3":
# #         num = int(input("请输入联系人编号："))
# #         if len(name_list) > 0 and num <= len(name_list):
# #             name_list.pop(num - 1)
# #             phone_list.pop(num - 1)
# #         else:
# #             print("联系人编号输入有误")
# #     else:
# #         print("显示联系人信息")
# #         print(name_list)
# #         print(phone_list)
# #
# #
# #
# # # #查找元素 index()
# # # ls1 = [1, 3, 5, 7, 'a', 'b', 8, 3, 'b', 2]
# # # print(ls1.index(3))
# # # print(ls1.index('b', 6))
# # # print(ls1.index('b', 6, 9))
# # # print(ls1.index(0))
# #
# #
# # # #count()方法用来统计某个元素在列表中出现的次数 列表名.count(统计的value元素)
# # # ls2 = [1, 3, 5, 7, 'a', 'b', 8, 3, 'b', 2, 5, 5, 7, 1]
# # # print(ls2.count(5))
# # # print(ls2.count(0))
# # # print(ls2.count('b'))
# #
# #
# # #元素排序 sort（）函数用于队员列表进行排序，如果指定参数，则使用指定的比较函数
# # #语法格式为：ls.sort(key=None, reverse=False)
# # #1.元素是字符串的排序
# # ls3 = ['1', '3', '44', '23', '99', '88', '56']
# # #默认升序
# # ls3.sort()
# # print(ls3)
# # #降序reverse=True
# # ls3.sort(reverse=True)
# # print(ls3)
# #
# # #2.元素是数值的排序
# # ls4 = [1, 3, 44, 23, 99, 88, 56]
# # #默认升序
# # ls4.sort()
# # print(ls4)
# # #降序 reverse=True
# # ls4.sort(reverse=True)
# # print(ls4)
# #
# #
# # """字典"""
# # #字典的创建
# # #1.使用{}创建字典语法格式
# # #字典名 = {'key1':'value1', 'key2':'value2', ..., 'keyn':'valyen'}
# # #使用字符串作为key
# # d1 = {'数学': 95, '英语': 90, '语文': 80}
# # print(type(d1))
# # #使用元组和数字作为key
# # d2 = {(20, 30): 'great', 30: [1, 2, 3]}
# # print(type(d2))
# # #创建空元组
# # d3 = {}
# # print(d3)
# #
# #
# # #2.用dict（）方法通过关键字的参数来创建字典格式：
# # #字典名= dict(str1=value1, str2=value2, str3=value3)
# # d4 = dict(数学=90, 语文=89, 英语=80)
# # print(d4)
#
#
# #字典元素的访问
# #1.字典名【key】
# d5 = {'数学':95, '英语':92, '语文':84}
# #健存在，返回的是值calue
# print(d5['英语'])
# #键不存在，会引发一个keyerrorcuow
# print(d5['Python'])
#
# #2.get()方法来获取指定键对应的值，语法格式：字典名.get（key【，default】）
# d6 = {'数学':95, '英语':92, '语文':84}
# #健存在
# print(d6.get('语文'))
# #键存在，不写default，会返回none
# print(d6.get('python'))
# print(d6.get('python', '该键不存在'))


#字典添加键值对
d7 = {'数学':95, '英语':92, '语文':84, 'python':99}
d7['可视化'] = 99
print(d7)


#字典修改键值对
d8 = {'数学':95, '英语':92, '语文':84, 'python':99}
d8['英语'] = 100
print(d8)


#字典删除键值对
d9 = {'数学':95, '英语':92, '语文':84, 'python':99}
#1.使用del关键字
del d9['语文']
print(d9)
#2.使用pop()方法
d9.pop('英语')
print(d9)
# #创建集合set，set()用来创建集合的函数，type()用来查看数据类型
# #1.可以使用大括号来进行创建
# Num1 = {1,2,3,4,5}
# #2.使用set()函数来进行创建
# Num2 = set('12345')
# print(Num1)
# print(type(Num1))
# print(Num2)
# print(type(Num2))
#
#
#
# #集合的添加与删除
# #添加元素
# Num1.add(6)
# print(Num1)
# #删除集合中第一个元素
# Num1.pop()
# print(Num1)
# #删除集合中的元素
# Num1.remove(5)
# print(Num1)


# #创建元组
# #创建空元组
# tuple1 = ()
# print(tuple1)
# #创建带有元素的元组，可以有元素类型
# tuple2 = (1, 'a', 3, 'hello', 2.2)
# print(tuple2)
# #创建只有一个元素的元组
# tuple3 = (1,)
# print(tuple3)
#
# #使用typle()函数将其他数据类型转换为元组类型
# #语法格式:tuple(数据)
# #将字符串转换成元组
# tuple1 = tuple('hello,world')
# print(tuple1)
# #将列表转换为元组
# list1 = ['python', 'java', 'c++', 'c']
# tuple2 = tuple(list1)
# print(tuple2)


#从开始索引开始截取，截至到结束索引之前
tuple1 = ('h', 'e', 'l', 'l', 'o')
#使用索引访问元组中的某个元素
#使用正数索引，从0开始
print(tuple[2])
#使用负数索引，倒序从-1开始
print(tuple[-4])

#使用切片访问元组中的一组元素，前闭后开
#使用正数切片
print(tuple[1: 4])
#指定步长
print(tuple[1: 4: 2])
#使用负数切片
print(tuple[-5: -1])